package com.zb.utils;

import java.util.ArrayList;
import java.util.List;

/**
 * 忽略路径工具类
 * @Author WEN
 * @Date 2023/7/28 0028
 **/
public class IgnorePathUtil {

    /**
     * 配置无需拦截的路径
     * @return
     */
    public static List<String> ignorePath() {
        List<String> path = new ArrayList<>();
        // pc端
        pcPath( path);
        // 客户报单移动端
        mobileUserPath(path);
        // 服务商端
        mobileNetworkPath(path);

        addressPath(path);

        // 系统接口文档配置
        path.add("/doc.html");
        path.add("/webjars/**");
        path.add("/swagger-resources");
        path.add("/v2/api-docs");
        path.add("/favicon.ico");
        path.add("/withdraw/bankCallback");

        // webSocket
        path.add("/ws/**");

        // 微信
        path.add("/wx/**");
        path.add("/error");

        // 重定向
        path.add("/RT**");
        // 地址识别
        path.add("/map/addressRecognition");

        path.add("/callback/**");

        //测试
        test(path);
        return path;
    }

    /**
     * 配置需要登录，选择企业的路径
     * @return
     */
    public static List<String> loginAuthoriIgnorePath() {
        List<String> path = new ArrayList<>();
        path.add("/system/login/getCustomer");
        path.add("/system/login/getCustomerCode");
        path.add("/system/login/refreshToken");
        path.add("/system/customer/register");

        addressPath(path);

        // 工单报单商刷新Token接口
        path.add("/mobile/user/refreshToken");
        // 服务商端刷新Token接口
        path.add("/mobile/network/refreshToken");

        test(path);
        return path;
    }

    /**
     * pc端忽略的路径
     * @param path
     */
    private static void pcPath(List<String> path) {
        // 登录与账号
        path.add("/system/login/");
        path.add("/system/login/logout");
        path.add("/system/account/register");
        path.add("/system/account/notLoginUpdatePassword");

        // 短信
        path.add("/sms/**");
    }

    /**
     * 客户报单移动端忽略的路径
     * @param path
     */
    private static void mobileUserPath(List<String> path) {
        // 移动端用户登录
        path.add("/mobile/user/checkPhone");
        path.add("/mobile/user/login");
        path.add("/mobile/user/logout");
        path.add("/mobile/user/logInRestPwd");
        path.add("/mobile/user/getMobileUserHasLogin");

        // 短信
        path.add("/mobile/sms/user/**");
    }


    /**
     * 服务商移动端忽略的路径
     * @param path
     */
    private static void mobileNetworkPath(List<String> path) {
        // 移动端用户登录
        path.add("/mobile/network/account/login");
        path.add("/mobile/network/account/logout");
        path.add("/mobile/network/account/logInRestPwd");
        path.add("/mobile/network/account/register");

        // 短信
        path.add("/mobile/sms/network/**");
    }


    /**
     * 请求地址忽略的路径
     * @param path
     */
    private static void addressPath(List<String> path) {
        path.add("/address/**");
    }


    public static void test(List<String> path) {
//        path.add("/dataExport/codeBatchExportExcel/**");
//        path.add("/dataExport/codeBatchExportTxt/**");
    }




}
